package com.csair.common.utils;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition;

/**
 * Created by ZZJ
 * Glide 的load 方法 会处理 是 Url  或者 url  所以使用字符串就好
 */
public class LoadImageUtil {

//    public static void displayImage(Context context, String url, int defaultRes, int errorRes, ImageView imageView) {
//        Glide.with(context)
//                .load(url)
//                .placeholder(defaultRes)
//                .crossFade()
//                .error(errorRes)
//                .into(imageView);
//    }
//
//    public static void displayImageAsBitmap(Context context, String url, int defaultRes, int errorRes, ImageView imageView) {
//        Glide.with(context)
//                .load(url)
//                .asBitmap()
//                .placeholder(defaultRes)
//                .error(errorRes)
//                .into(imageView);
//    }
//
//    public static void displayImage(Activity activity, String url, int defaultRes, ImageView imageView) {
//        Glide.with(activity)
//                .load(url)
//                .placeholder(defaultRes)
//                .crossFade()
//                .into(imageView);
//    }
//
//    public static void displayImage(Activity activity, String url, ImageView imageView, int errorRes) {
//        Glide.with(activity)
//                .load(url)
//                .error(errorRes)
//                .crossFade()
//                .into(imageView);
//    }
//
//    public static void displayImage(Activity activity, String uri, ImageView imageView) {
//        Glide.with(activity)
//                .load(uri)
//                .into(imageView);
//    }

    private static GetBitmapListener getBitmapListener;

    public static void displayImage(Context context, String url, int defaultRes, int errorRes, ImageView imageView) {
        RequestOptions options = new RequestOptions()
                .placeholder(defaultRes).error(errorRes);
        Glide.with(context).load(url).apply(options).into(imageView);
    }

    //url  或者 uri都可以 所以这里使用字符串
    public static void loadImage(Context activity, String url, GetBitmapListener Listener) {
        getBitmapListener = Listener;
        Glide.with(activity).asBitmap().load(url).into(new SimpleTarget<Bitmap>() {
            @Override
            public void onResourceReady(Bitmap bitmap, Transition<? super Bitmap> transition) {
                getBitmapListener.onSuccess(bitmap);
            }

            @Override
            public void onLoadFailed(@Nullable Drawable errorDrawable) {
                super.onLoadFailed(errorDrawable);
                getBitmapListener.onError();
            }
        });
//        Glide.with(activity)
//                .load(url)
//                .asBitmap()
//                //.placeholder(defaultRes)
//                //.error(errorRes)
//                .into(new SimpleTarget<Bitmap>() {
//                    @Override
//                    public void onStart() {
//                        super.onStart();
//                    }
//
//                    @Override
//                    public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {
//                        getBitmapListener.onSuccess(bitmap, glideAnimation);
//                    }
//
//                    @Override
//                    public void onLoadFailed(Exception e, Drawable errorDrawable) {
//                        getBitmapListener.onError();
//                        super.onLoadFailed(e, errorDrawable);
//                    }
//                });
    }

    public interface GetBitmapListener {
        void onSuccess(Bitmap bitmap);

        void onError();
    }
}
